﻿#define _CRT_SECURE_NO_WARNINGS 1
//描述
//输入一个浮点数f, 表示华氏温度, 输出对应的摄氏温度c, c = 5 / 9 * (f - 32)
//输入描述：
//输入一个浮点数f(1 <= f <= 100000)
//输出描述：
//输出浮点数, 保留3位小数
//示例1
//输入：
//100
//复制
//输出：
//37.778
//
#include <stdio.h>

int main()
{
    double f = 0.0f;//用double类型可以保证运算精度
    scanf("%lf", &f);
    double a = (double)5 / 9;
    double b = (f - 32);
    printf("%.3lf", a * b);

}
//描述
//牛牛有一个半径为 r 的圆，请你计算这个圆的面积。
//
//圆的面积公式是 \pi \times r ^ 2 \ π×r
//2
//，其中 \pi \ π  取 3.14
//输入描述：
//输入一个半径 r
//输出描述：
//输出圆的面积
//示例1
//输入：
//1
//复制
//输出：
//3.14


#include <stdio.h>
#include<stdio.h>

int main()
{
    float r = 0;
    scanf("%f", &r);
    printf("%.2f", 3.14 * pow(r, 2));
    return 0;
}
//描述
//牛牛有一个阻值是 r1 和一个阻值 r2 的电阻，牛牛想知道这两个电阻并联后等效电阻是多少
//
//并联电路的等效电阻公式是：\frac{ 1 }{\frac{ 1 }{r1} + \frac{ 1 }{r2}} \
//r1
//1
//​
//+
//r2
//1
//​
//
//1
//​
//
//输入描述：
//输入 r1 和 r2 两个电阻的阻值
//输出描述：
//输出两个电阻并联后的等效电阻zhi
//示例1
//输入：
//1 1
//复制
//输出：
//0.5

#include <stdio.h>

int main()
{
    float r1 = 0.0f;
    float r2 = 0.0f;
    scanf("%f %f", &r1, &r2);
    float a = r1 * r2;
    float b = r1 + r2;
    printf("%.1f", a / b);
    return 0;
}
//描述
//牛牛口渴了，要喝10升水才能解渴，但现在只有一个深 h 厘米，底面半径是 r 厘米的水杯，牛牛最少要喝多少杯水才能解渴。
//
//水杯的体积公式是 \pi \times h \times r ^ 2 \ π×h×r
//2
//，其中 \pi \ π  取 3.14 ，h\ h  和 r\ r  是整数。
//输入描述：
//输入杯子的高度 h ，底面半径 r 。
//输出描述：
//输出牛牛最少要喝多少杯水
//示例1
//输入：
//2 6
//复制
//输出：
//45
#include <stdio.h>
int main()
{
    int h = 0;
    int r = 0;
    scanf("%d %d", &h, &r);
    float V = (3.14 * h * r * r);
    float num = 10 * 1000 / V;
    int num1 = 10 * 1000 / V;
    if (num > num1)
    {
        num1 += 1;
    }
    printf("%d", num1);
    return 0;
}
//比较巧妙的方法：
// int main(void)
// {
//     int h=0,r=0;
//     scanf("%d%d",&h,&r);
//     float v=h*3.14*r*r;
//     int c=10000;
//     int d=0;
//     while(c>0)
//     {
//         c=c-v;
//         d++;
//     }
//     printf("%d",d);
//     return 0;
// }

//描述
//牛牛有一个半径为 r 的球，他想知道这个球的体积。
//
//球的体积公式是 \frac{ 4 }{3} \pi r ^ 3 \
//3
//4
//​
//πr
//3
//其中 \pi \ π  取3.14 ， r 是一个整数
//输入描述：
//输入球的半径
//输出描述：
//输出球的体积
//示例1
//输入：
//3
//复制
//输出：
//113.04

#include <stdio.h>
#include<math.h>
int main() {
    int r = 0;
    scanf("%d", &r);
    printf("%.2f", (4 / 3.0) * 3.14 * (pow(r, 3)));//注意4/3这里要小数才准确
    return 0;
}
//描述
//小乐乐比较懒惰，他现在想睡觉，然后再去学习。他知道现在的时刻，以及自己要睡的时长，想设定一个闹钟叫他起床学习，但是他太笨了，不知道应该把闹钟设定在哪个时刻，请你帮助他。(只考虑时和分，不考虑日期)
//
//输入描述：
//输入现在的时刻以及要睡的时长k（单位：minute），中间用空格分开。
//
//输入格式：hour : minute k(如hour或minute的值为1，输入为1，而不是01)
//
//(0 ≤ hour ≤ 23，0 ≤ minute ≤ 59，1 ≤ k ≤ 109)
//
//输出描述：
//对于每组输入，输出闹钟应该设定的时刻，输出格式为标准时刻表示法（即时和分都是由两位表示，位数不够用前导0补齐）。
//示例1
//输入：
//0:0 100
//复制
//输出：
//01 : 40
//复制
//示例2
//输入：
//1 : 0 200
//复制
//输出：
//04 : 20

#include <stdio.h>
int main()
{
    int h = 0, m = 0, k = 0;
    scanf("%d:%d %d", &h, &m, &k);
    int M = m + k;
    while (M >= 60)
    {
        if (h >= 0 && h <= 23)
        {
            M -= 60;
            h++;
        }
        else if (h > 23)
        {
            M -= 60;
            h++;
            h %= 24;
        }
    }
    m = M;
    printf("%02d:%02d", h, m);

    return 0;
}
//比较巧妙的方法：
// #include <stdio.h>
// int main()
// {
//     int h=0;
//     int m=0;
//     int k=0;
//     scanf("%d:%d %d",&h,&m,&k);
//     h=((m+k)/60+h)%24;
//     m=(m+k)%60;
//     printf("%02d:%02d\n",h,m);
//     return 0;
// }
//描述
//小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数，但是他竟然不会求两个正整数的最大公约数与最小公倍数之和，请你帮助他解决这个问题。
//
//输入描述：
//每组输入包含两个正整数n和m。(1 ≤ n ≤ 109，1 ≤ m ≤ 109)
//
//输出描述：
//对于每组输入，输出一个正整数，为n和m的最大公约数与最小公倍数之和。
//示例1
//输入：
//10 20
//复制
//输出：
//30
//复制
//示例2
//输入：
//15 20
//复制
//输出：
//65
#include <stdio.h>

int main()
{
    long n = 0, m = 0;
    scanf("%ld %ld", &n, &m);
    long p = n * m;
    while (n != 0)//辗转相除法，m求得为最大公倍数，
               //一开始两个数的乘积除以它们的最大公倍数则得到最小公倍数。
    {
        long temp = m % n;
        m = n;
        n = temp;
    }
    printf("%ld", m + p / m);
    return 0;
}
//描述
//小乐乐喜欢数字，尤其喜欢0和1。他现在得到了一个数，想把每位的数变成0或1。如果某一位是奇数，就把它变成1，如果是偶数，那么就把它变成0。请你回答他最后得到的数是多少。
//
//输入描述：
//输入包含一个整数n(0 ≤ n ≤ 109)
//
//输出描述：
//输出一个整数，即小乐乐修改后得到的数字。
//示例1
//输入：
//222222
//复制
//输出：
//0
//复制
//示例2
//输入：
//123
//复制
//输出：
//101
//巧用递归从左到右识别出对应位上的数字
#include <stdio.h>
int getNum(int a)
{
    if (a <= 9)
    {
        return a % 2 == 0 ? 0 : 1;
    }
    else if (a >= 10)
    {
        int c = getNum(a / 10) * 10;
        int b = a % 2 == 0 ? 0 : 1;
        a = c + b;
    }
    return a;
}
int main() {
    int a;
    while (scanf("%d\n", &a) != EOF)
    { // 注意 while 处理多个 case
        // 64 位输出请用 printf("%lld") to 
        int ret = getNum(a);
        printf("%d\n", ret);
    }
    return 0;
}

//描述
//KiKi开始学习英文字母，BoBo老师告诉他，有五个字母A(a), E(e), I(i), O(o), U(u)称为元音，其他所有字母称为辅音，请帮他编写程序判断输入的字母是元音（Vowel）还是辅音（Consonant）。
//输入描述：
//多组输入，每行输入一个字母。
//输出描述：
//针对每组输入，输出为一行，如果输入字母是元音（包括大小写），输出“Vowel”，如果输入字母是非元音，输出“Consonant”。
//示例1
//输入：
//A
//b
//复制
//输出：
//Vowel
//Consonant
#include <stdio.h>

int main() {
    char a = '0';
    while (scanf("%c", &a) != EOF)
    {
        if (a == 'A' || a == 'a' || a == 'E' || a == 'e' || a == 'I'
            || a == 'i' || a == 'O' || a == 'o' || a == 'U' || a == 'u')
        {
            printf("Vowel\n");
        }
        else if (a != '\n')//注意要排除空格（换行）字符即\n
        {
            printf("Consonant\n");
        }
    }
    return 0;
}
//描述
//判断一个整数n是否是闰年
//
//
//输入描述：
//输入一个整数n （1 \le n \le 20181≤n≤2018）
//输出描述：
//是闰年输出"yes" 否则输出"no"
//示例1
//输入：
//2000
//复制
//输出：
//yes
//复制
//示例2
//输入：
//1900
//复制
//输出：
//no
#include <stdio.h>
//公历年份是4的倍数，且不是100的倍数，为普通闰年。
//公历年份是整百数，且必须是400的倍数才是世纪闰年。
int main() {
    int num = 0;
    scanf("%d", &num);
    if (num % 4 == 0 && num % 100 != 0 || num % 400 == 0)
    {
        printf("yes");

    }
    else
    {
        printf("no");
    }
    return 0;
}

//描述
//小乐乐获得4个最大数，请帮他编程找到最大的数。
//输入描述：
//一行，4个整数，用空格分开。
//输出描述：
//一行，一个整数，为输入的4个整数中最大的整数。
//示例1
//输入：
//5 8 2 5
//复制
//输出：
//8

#include <stdio.h>

int main() {
    int a, b, c, d;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    int x, y;
    x = a > b ? a : b;
    y = c > d ? c : d;
    printf("%d", x > y ? x : y);

    return 0;
}
//描述
//KiKi想判断输入的字符是不是字母，请帮他编程实现。
//
//输入描述：
//多组输入，每一行输入一个字符。
//输出描述：
//针对每组输入，输出单独占一行，判断输入字符是否为字母，输出内容详见输出样例。
//示例1
//输入：
//A
//6
//复制
//输出：
//A is an alphabet.
//6 is not an alphabet.

#include <stdio.h>
int main()
{
    char c = '0';
    while (scanf("%c", &c) != EOF)
    {
        if ((c >= 65 && c <= 90) || (c >= 97 && c <= 122))
        {
            printf("%c is an alphabet.\n", c);
        }
        else
        {
            printf("%c is not an alphabet.\n", c);
        }
        getchar();//注意换行字符，需要用gerchar（）来吸收掉。

    }
    return 0;
}
//描述
//牛牛从键盘输入一个整数，请你判断这个整数能被 2 3 7 中哪几个数整除，并按升序输出。如果不能被 2 3 7 任意一个数整除则输出 n。
//输入描述：
//输入一个整数
//输出描述：
//输出能被 2 3 7 哪几个数整除，并按升序输出。
//示例1
//输入：
//6
//复制
//输出：
//2 3

#include <stdio.h>
// int main() 
// {
//     int arr[3]={0}; 
//     int n =0;
//     scanf("%d",&n);
//     if(n%2==0)
//     {
//         arr[0]=2;     
//     }
//     if(n%3==0)
//     {
//         arr[1]=3;    
//     }
//     if(n%7==0)
//     {
//         arr[2]=7;    
//     }
//     if(n%3!=0&&n%2!=0&&n%7!=0)
//     {
//         printf("n");
//     }
//     else
//     {
//         for(int i=0;i<3;i++)
//         {
//             if(arr[i]!=0)
//             {
//                 printf("%d ",arr[i]);
//             }
//         }
//     } 
//     return 0;
// }

//巧妙的方法：d
int main()
{
    int a;
    //这个是输入的变量
    int c = 0;
    //这个是循环控制变量
    int d = 0;
    //这个是输出计数器
    int arr[3] = { 2,3,7 };
    //把被除数存到数组里去
    scanf("%d", &a);

    for (; c < 3; c++)
    {
        if (a % arr[c] == 0)
        {
            printf("%d ", arr[c]);
            d++;
        }
    }
    //循环整除三次，如果有任何一次命中了判断，那么d+1之后就不会命中下面的判断了
    //写完感觉自己还是有点小聪明的，偷笑hhh
    if (d == 0)
    {
        printf("n ");
    }

    return 0;
}
//描述
//KiKi非常喜欢网购，在一家店铺他看中了一件衣服，他了解到，如果今天是“双11”（11月11日）则这件衣服打7折，“双12” （12月12日）则这件衣服打8折，如果有优惠券可以额外减50元（优惠券只能在双11或双12使用），求KiKi最终所花的钱数。
//
//数据范围：衣服价格满足 1 \le val \le 100000 \ 1≤val≤100000
//输入描述：
//一行，四个数字，第一个数表示小明看中的衣服价格，第二和第三个整数分别表示当天的月份、当天的日期、第四个整数表示是否有优惠券（有优惠券用1表示，无优惠券用0表示）。 注：输入日期保证只有“双11”和“双12”。
//输出描述：
//一行，小明实际花的钱数（保留两位小数）。（提示：不要指望商家倒找你钱）
//示例1
//输入：
//1000.0 11 11 1
//复制
//输出：
//650.00
//复制
//示例2
//输入：
//999.8 12 12 0
//复制
//输出：
//799.84
//复制
//示例3
//输入：
//66.6 11 11 1
//复制
//输出：
//0.00
//
//
#include <stdio.h>

int main()
{
    float s = 0.0, S = 0.0;
    int m = 0, d = 0, flag = 0;
    scanf("%f %d %d %d", &s, &m, &d, &flag);
    if (m == 11 && d == 11)
    {
        if (flag == 0)
        {
            S = s * 0.7;
        }
        else if (flag == 1)
        {
            S = (s * 0.7 - 50) >= 0 ? (s * 0.7 - 50) : 0.0;
        }
    }
    if (m == 12 && d == 12)
    {
        if (flag == 0)
        {
            S = s * 0.8;
        }
        else if (flag == 1)
        {
            S = (s * 0.8 - 50) >= 0 ? (s * 0.8 - 50) : 0.0;
        }
    }
    printf("%.2f", S);

    return 0;
}
//描述
//牛牛正在寄快递，他了解到快递在 1kg 以内的按起步价 20 元计算，超出部分按每 kg 1元计算，不足 1kg 部分按 1kg计算。如果加急的话要额外付五元，请问牛牛总共要支付多少快递费
//输入描述：
//第一行输入一个单精度浮点数 a 和一个字符 b ，a 表示牛牛要寄的快递的重量，b表示牛牛是否选择加急，'y' 表示加急 ，'n' 表示不加急。
//输出描述：
//输出牛牛总共要支付的快递费用
//示例1
//输入：
//1.5 y
//复制
//输出：
//26
//复制
//示例2
//输入：
//0.7 n
//复制
//输出：
//20


// #include <stdio.h>

// int main() {
//     float a=0.0;
//     char b ='0';
//     int sum =0;
//     scanf("%f %c",&a,&b);
//     if(a<=1.0)
//     {
//          if(b=='y')
//         {
//             sum=20+5;

//         }
//         else if(b=='n')
//         {
//             sum=20;
//         }
//     }
//     else if(a-1.0>(int)(a-1.0))
//     {

//         if(b=='y')
//         {
//             sum=20+a+5;

//         }
//         else if(b=='n')
//         {
//             sum=20+a;
//         }
//     }
//     else
//     {
//         if(b=='y')
//         {
//             sum=20+a-1+5;

//         }
//         else if(b=='n')
//         {
//             sum=20+a-1;
//         }
//     }
//     printf("%d",sum);
//     return 0;
// }
//巧妙方法一：
// #include <math.h>
// int main() {
//     float a;
//     char b;
//     int money=20;
//     scanf("%f %c", &a, &b);
//       if(a>0&&a<=1)
//     {
//         if(b=='y')
//             printf("25");
//         else
//             printf("20");
//     }
//   if(a>1)
//   {
//       money=money+ceil(a-1);    //向上取整函数
//       if(b=='y')
//           printf("%d",money+5);
//       else
//           printf("%d",money);
//   }


// }
//巧妙方法二：
#include<stdio.h>
int main() {
    float a = 0.0f;
    char b = 0;
    int price = 20;  //起步价
    scanf("%f ", &a);
    b = getchar();
    if (b == 'y')price += 5;//是否加急
    if (a > 1) {
        if (a > (int)a) {  //是否需要向上取整
            printf("%d", price + (int)a);  //向上取整为(int)float+1，再减起步1kg
        }
        else {
            printf("%d", price + (int)a - 1);//不向上取整(int)float，再减起步1kg
        }
    }
    else {
        printf("%d", price);
    }
}

